package com.fiberhome.nas.core.model.response

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

/**
 * 解析网络响应
 */
@Serializable
data class NetworkResponse<T>(
    /**
     * 真实数据
     * 类型是泛型
     */
    val data: T? = null,

    /**
     * 状态码
     * 等于200表示成功
     */
    val code: Int = 200,

    /**
     * 出错的提示信息
     * 发生了错误不一定有
     */
    val message: String? = null,


    ) {
    /**
     * 是否成功
     *
     * @return
     */
    val isSucceeded: Boolean
        get() = code == 200 || code == 201
}

/**
 * 批量数据
 */
@Serializable
data class ListData<T>(
    @SerialName("total") val total: Int = 0,
    @SerialName("count") val count: Int = 0,
    @SerialName("items") val items: List<T> = emptyList(),
)

@Serializable
data class UploadResult(
    @SerialName("id") val id: String,
    @SerialName("path") val path: String,
    @SerialName("status") val status: String,
)